﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DTO;
using DAO;
using System.Collections;

namespace BUS
{
    public class TaiKhoan_BUS
    {
        TaiKhoan_DAO db = new TaiKhoan_DAO();

        //Phương thức lấy danh sách tài khoản
        public List<TaiKhoan> LayDanhSach_TaiKhoan()
        {
            try
            {
                return db.LayDanhSach_TaiKhoan();
            }
            catch
            {
                return null;
            }
        }

        //Phương thức lấy thông tin của một tàikhoản
        public TaiKhoan LayThongTin_TaiKhoan(string username)
        {
            try
            {
                return db.LayThongTin_TaiKhoan(username );
            }
            catch
            {
                return null;
            }
        }

        //Phương thức lấy thông tin của một tàikhoản theo id
        public TaiKhoan LayThongTin_TaiKhoan(int id)
        {
            try
            {
                return db.LayThongTin_TaiKhoan(id);
            }
            catch
            {
                return null;
            }
        }
        //Phương thức lấy danh sách theo loại
        public List<TaiKhoan> LayDanhSachTheoLoai_TaiKhoan(int maloaitaikhoan)
        {
            try
            {
                return db.LayTaiKhoanTheoLoai_TaiKhoan(maloaitaikhoan);
            }
            catch
            {
                return null;
            }
        }

        
        /// <summary>
        /// Phương thức đăng nhập
        /// </summary>
        /// <param name="username"></param>
        /// <param name="password"></param>
        /// <returns></returns>
        public bool DanhNhap(String username, String password)
        {
            try
            {
                return db.DangNhap(username, password);
            }
            catch
            {
                return false;
            }
        }
        /// <summary>
        /// Phương thức thêm một tài khoản
        /// </summary>
        /// <param name="taikhoan"></param>
        /// <returns></returns>
        public bool Them_TaiKhoan(TaiKhoan taikhoan)
        {
            try
            {
                return db.Them_TaiKhoan(taikhoan);
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// Phương thức xóa một tài khoản 
        /// </summary>
        /// <param name="taikhoan"></param>
        /// <returns></returns>
        public bool Xoa_TaiKhoan(TaiKhoan taikhoan)
        {
            try
            {

                return db.Xoa_TaiKhoan(taikhoan);
            }
            catch
            {
                return false;
            }
        }

        /// <summary>
        /// Phương thức sửa tài khoản
        /// </summary>
        /// <param name="taikhoan"></param>
        /// <returns></returns>
        public bool Sua_TaiKhoan(TaiKhoan taikhoan)
        {
            try
            {
                return db.Sua_TaiKhoan(taikhoan);
            }
            catch
            {
                return false;
            }
        }
        //Thiên
        //////////////////////////////////////////////////////////////////////////
        // kiểm tra tên đăng nhập khi đăng kí
        public bool KiemTraUserDangKy(string username)
        {
            try
            {
                return db.KiemTraUserDangKy(username);
            }
            catch (Exception ex)
            {
                throw ex;
                return false;
            }
        }

        // kiểm tra email có trùng ko
        public bool KiemTraEmailDangKy(string email)
        {
            try
            {
                return db.KiemTraEmailDangKy(email);
            }
            catch (Exception ex)
            {
                throw ex;
                return false;
            }
        }

        // kiểm tra cmnd có trùng ko
        public bool KiemTraCMNDDangKy(string cmnd)
        {
            try
            {
                return db.KiemTraCMNDDangKy(cmnd);
            }
            catch (Exception ex)
            {
                throw ex;
                return false;
            }
        }

        // lấy danh sách tài khoản để quản lý tài khoản, chỉ select 1 số cột
        public ArrayList LayDanhSachTK_Admin()
        {
            try
            {
                return db.LayDanhSachTK_Admin();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //Phuong thuc sua tai khoan của admin
        public bool Sua_TaiKhoanAdmin(TaiKhoan taikhoan)
        {
            try
            {
                return db.Sua_TaiKhoanAdmin(taikhoan);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //Phuong thuc sua tai khoan
        public bool Sua_TaiKhoanDoiPass(TaiKhoan taikhoan)
        {
            try
            {
                return db.Sua_TaiKhoanDoiPass(taikhoan);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        // lấy danh sách doanh nghiêp
        public List<TaiKhoan> LayDanhSachDoanhNghiep()
        {
            try
            {
                return db.LayDanhSachDoanhNghiep();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        /// doanh thu theo doanh nghiệp
        public IQueryable DoanhThuTheoDoanhNghiep(TaiKhoan taikhoan)
        {
            try
            {
                return db.DoanhThuTheoDoanhNghiep(taikhoan);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }

        //======= Sanh ========
        //Tim Username 
        public List<TaiKhoan> Tim_UserName(string tentaikhoan)
        {
            try
            {
                return db.Tim_UserName(tentaikhoan);
            }
            catch
            {
                return null;
            }
        }
    }
}
